package com.commonEncryptionAlgorithms.hashFunction.hash.md5;

import com.util.FileUtil;
import org.junit.Test;

import java.io.IOException;

public class Collision {
    // 其实这个也是属于 byte数组碰撞，而不是 真正意义上的 字符串碰撞
    @Test
    public void testCollision() {
        String str1 = "346463393638666630656533356332303935373264343737376237323135383764333666613762323162646335366237346133646330373833653762393531386166626661323030613832383462663336653865346235356233356634323735393364383439363736646130643135350000000000000000000000000000000061c4e647d8d6a7c85279b33a587f6cdfe99a4ef9e261f5cb41727f8a50be0a1831d103e6cae6c390cb27b8623538f2741f4403dea4d0fc30d87f78661fdbefd59f2b954a180f917e3b42fa163e1606639523972b689e32e889c3204f8b5f68d7d35330f4af47a216ba3dcc7ac10bf29820214b3d213b71d961398ff31c83dd66";
        String str2 = "346463393638666630656533356332303935373264343737376237323135383764333666613762323162646335366237346133646330373833653762393531386166626661323030613832383462663336653865346235356233356634323735393364383439363736646130643135350000000000000000000000000000000061c4e647d8d6a7c85279b33a587f6cdfe99a4e79e261f5cb41727f8a50be0a1831d103e6cae6c390cb27b86235b8f2741f4403dea4d0fc30d87f78e61fdbefd59f2b954a180f917e3b42fa163e160663952397ab689e32e889c3204f8b5f68d7d35330f4af47a216ba3dcc7ac18bf19820214b3d213b71d961398f731c83dd66";
        String hexMd5 = MD5E1.getHexMd5(str1);
        String hexMd51 = MD5E1.getHexMd5(str2);
        System.out.println(hexMd5);
        System.out.println(hexMd51);
    }

    @Test
    public void collisionFile() throws IOException {
        byte[] bytes1 = FileUtil.readFileAsByteArray("md5Collision/1.jpg");
        byte[] bytes2 = FileUtil.readFileAsByteArray("md5Collision/2.jpg");
        String md5 = MD5E1.getMd5(bytes1);
        String md51 = MD5E1.getMd5(bytes2);
        System.out.println(md5);
        System.out.println(md51);
        if (md5.equals(md51)) {
            System.out.println(true);
        }
    }

    @Test
    public void collisionStr(){
        String str1 = "The quick brown fox jumps over the lazy dog";
        String str2 = "The quick brown fox jumps over the lazy cog";
        String md5 = MD5E1.getMd5(str1);
        String md51 = MD5E1.getMd5(str2);
        System.out.println(md5);
        System.out.println(md51);
    }
}
